比特币低功耗流程与方法学——实现篇:‘完全酷’案例研究

SNUG Silicon Valley 2017 2017 41 页

比特币低功耗流程与方法学——实现篇

"完全酷"案例研究

会议: SNUG Silicon Valley 2017 (March 23, 2017) 作者: Antonio Dimalanta, Sr. Staff FAE, Synopsys, Inc. 页数: 41


第 1 页 — 封面

比特币低功耗流程与方法学 —— 实现篇:"完全酷"案例研究

Antonio Dimalanta, Sr. Staff FAE, Synopsys, Inc. March 23, 2017

Slide 1

第 2 页 — 议程

Slide 2

- 引言 - 比特币设计与 UPF 统一功耗格式 概览 - Synopsys 低功耗流程与方法学 - 比特币案例研究细节 —— 实现 - 未来展望与总结


第 3 页 — 引言

Slide 3

比特币低功耗流程与方法学


第 4 页 — 完全酷:功耗对比

Slide 4

完全酷(Completely Cool): - Generic Flow:1.77W - Low Power Flow:0.88W - 2 倍功耗降低(2X Reduction)

Complete + Cool = Completely Cool


第 5 页 — 低功耗的全球影响

Slide 5

每一纳瓦都很重要: - 201M 单元 = 6030 MW - 6030 MW vs 5829 MW


第 6 页 — 为什么做低功耗案例研究

Slide 6

- 教育我们的客户和团队了解低功耗流程与方法学的各个方面 - 解决低功耗流程与方法学内部及跨流程的问题 - 拥有一个可以通过流程中所有工具进行回归测试的标准测试用例 - 为客户提供一个贯穿整个流程的示例


第 7 页 — 比特币设计与 UPF 概览

Slide 7

第 8 页 — 比特币:是什么?为什么?

Slide 8

- 数字货币:基于密码学。现在 1 BTC = $1166.01;2007 年 $1 = 1309 BTC --> 今天 $1.5M - 比特币网络:世界上最大的计算能力集合……仅 10 年! - 比特币矿工:构成比特币网络,验证交易以获得 BTC 奖励。现在每 10 分钟 12 BTC = ~$12K - 比特币测试用例:开放标准。我们拥有 RTL、SDC 时序约束UPF 统一功耗格式,可自由与客户和内部团队分享 - 比特币低功耗:低功耗与比特币挖矿系统的盈利能力直接相关,因为电力成本是巨大的组成部分 - 比特币硬件:技术和效率在不断提升


第 9 页 — 比特币"矿场"与硬件成本

Slide 9

- 2014 广告描述:1PH/s(500 台 S4 单元),电力:$80/KW/月,费率锁定 12 个月 - 2016:1PH/s(175 台 S9 单元),减少 65% 电力消耗,7 倍提升!


第 10 页 — 比特币 ASIC 内部结构

Slide 10

比特币 ASIC 基本上是大规模并行的 HASHING 模块和存储器集合: - bitcoin_N(多个实例) - 每个 bitcoin 包含:HASH 模块 + MEMORY + CTRL - 数据流:SIPO --> HASH --> PISO


第 11 页 — 比特币微架构

Slide 11
BIT_COIN
  |-- HASH
  |-- BIT_TOP
        |-- SIPO, PISO
        |-- BIT_SLICE_0 ... BIT_SLICE_31 (共32个)
              |-- SIPO, PISO
              |-- MEM1 (16x4), MEM2 (16x4)
  |-- BIT_TOP_0 ... BIT_TOP_15 (共16个)
  |-- PISO

第 12 页 — 比特币电源模块图

Slide 12

电源域结构: - bit_top (TOP, 0.85V):顶层常开域 - SIPO (PD_SIPO_SLICE, 0.78V, SW):可关断域 - bit_slice:包含 SIPO、PISO、MEM1、MEM2 - PISO (PD_PISO_SLICE, 0.78V, SW):可关断域 - HASH/bit_coin:PISO (PD_SECURE, 0.78V, SW) - 各电源开关:SSL_SIPO_SW, SSL_PISO_SW, SS_MEM_SW 等


第 13 页 — 当前使用的 UPF 构造

Slide 13

- 显式 Supply Sets - NOR 型隔离(NOR-Isolation) - PSW 确认功能和延迟(PSW ack function and delay) - SIPO 和 PISO 块的单引脚保留(Single-Pin Retention) - 隔离 —— 异构扇出示例(Isolation - Heterogeneous Fanout) - UPF 2.1 风格的 PST - PG 的完全细化(Full Refinement of PG)


第 14 页 — UPF 考量:PST 复杂度

Slide 14

PST 复杂度统计

项目数量
Total Power Scope defined529
Total Power Domain defined1,586
Total power switch defined1,057
Total isolation policy defined3,633
Total retention policy defined1,057
Total PST defined529
Total add_pst_state defined2,116
Total unique supply source6,350
Total supply set defined12,093

这意味着需要 6.3K 列在 PST 中!3 个状态,2 个常开电源,2 个可关断电源。


第 15 页 — 解决 PST 复杂度

Slide 15

BIT_SLICE 包含:SIPO、PISO、MEM1 16x4、MEM2 16x4、SS_SW1、P1_SW、SS_SW2、P2_SW、SS_MEM_SW

512 个 bit_slice 实例。顶层 PST 通过 512 个 bit_slice 实例来解决复杂度。


第 16 页 — 最终简化的 PST

Slide 16
状态High VLow VSW High VSW Low VGNDSH1SH2MS
ALL_ONONONONONONONONON
PON_SOFFONONONOFFONONOFFON
POFF_SONONONOFFONONOFFONON
MEM_OFFONONOFFOFFONOFFOFFOFF

4 个状态,2 个常开电源,2 个可关断电源,3 个可关断电源(MEM),接地。


第 17 页 — 最终 PST(图形显示)

Slide 17

第 18 页 — Synopsys 低功耗流程与方法学

Slide 18

第 19 页 — Synopsys 低功耗流程图

Slide 19

完整流程包括:

- 静态验证与功耗探索SpyGlass(Lint/SDC/CDC/PE/PR)、VC-LP - 功能验证:VCS-NLP + Verdi PA - 实现:DC/PwC/DE/DFT、ICC2 - 签核(Signoff):PT/PX/ECO、PrimeRail、VC-LP、Formality - 仿真(Emulation):FSDB、TB

数据流:RTL + UPF + SDC --> Gates + UPF' + PG --> Gates + UPF'' + PR


第 20 页 — 比特币案例研究:实现

Slide 20

第 21 页 — 重点主题:前端实现+

Slide 21

在流程图中高亮标记前端实现相关工具。


第 22 页 — SpyGlass 概览

Slide 22

SpyGlass —— RTL 静态检查和低功耗探索:

- Lint:业界事实标准的 RTL lint,驱动"构造即正确"的 RTL 设计 - Power Exploration:RTL 功耗估算和探索,CDC 安全功耗降低 - DFT:RTL 级的固定型和全速测试覆盖率分析,与 ATPG 紧密相关(1-2%) - Low Power:基于 UPF 的 RTL 和网表功耗意图验证,布局后电源/接地连接检查 - CDC & RDC:全面的时钟和复位域验证,结构、形式和基于仿真的方法,签核质量和十亿门容量 - Constraints & Timing Exceptions:全面的 SDC 验证,形式化虚假和多周期路径验证


第 23 页 — SpyGlass Lint/SDC/CDC/PE 结果

Slide 23

- Lint:干净,早期频繁使用确保 RTL 构造即正确 - SDC:干净(含豁免),早期频繁使用确保 SDC 完整性,消除冗余 - CDC:运行太晚!导致因设计中触发器数量增加而需要重新布图规划 —— 最终干净 - PE(Power Exploration):识别出改善时钟门控效率的省电机会,使用仿真的 RTL FSDB(VCS NLP)运行 RTL 功耗估算

SpyGlass 功耗估算结果(RTL 输入):

内部功耗 (W)开关功耗 (W)漏电功耗 (W)总功耗 (W)
0.8670.0740.1231.064

第 24 页 — VC LP 流程

Slide 24

下一代低功耗静态检查和签核

设计流程:RTL --> 综合后设计 --> PG 连接后设计

检查类型: - RTL 阶段:UPF 检查、架构检查、结构/功能检查 - 综合后:UPF 检查、架构检查、结构/功能检查 - PG 连接后:PG 检查


第 25 页 — VC LP @RTL 结果、运行时间和内存

Slide 25
设计ErrorsWarningsInfosTotal Time (S)CPU Time (S)Peak Memory (MB)
bit_slice00012.058.18718
bit_top00018.9110.45727
bit_coin00060.4350.89872

干净、快速、高效


第 26 页 — VC LP @RTL 发现

Slide 26

ISO_STRATEGY_REDUND 警告在 VCLP @RTL:

# File : waivers_rtl.tcl
waive_lp -tag ISO_STRATEGY_REDUND \
  -filter {strategy =~ bit_secure_*/slice_*/PD_PISO/ISO_PISO_OUT_SSL} \
  -add W1

piso_bit(piso) -> slice_21(bit_slice) -> bit_secure_11(bit_top) -> piso_slice_last(piso) -> dout

Previous 与 Current 信号对比分析。


第 27 页 — Design Compiler 家族

Slide 27

低功耗实现方案

- DC Ultra - DC Graphical - Power Compiler - DFT Compiler - DFTMAX - TetraMAX


第 28 页 — 自底向上编译(Bottom Up Compile)

Slide 28

使用 Block Abstraction Models (BAM):

- bit_slice (BAM) --> bit_slice.vg + bit_slice.upf - bit_top (BAM, 使用 bs BAM) --> bit_top.vg + bit_top.upf - bit_coin (使用 bt, bs BAM) --> bit_coin.vg + bit_coin.upf

通过 Design Compiler 自底向上编译:RTL + UPF + BAM


第 29 页 — 签核工具的 Wrapper UPF

Slide 29
# File : wrap_bit_coin.upf
for {set j 0} {$j < 16} {incr j} {
  for {set i 0} {$i < 32} {incr i} {
    load_upf -scope bit_secure_${j}/slice_${i} ../icc2/outputs2icc2/bit_slice.upf
  }
}
for {set k 0} {$k < 16} {incr k} {
  load_upf -scope bit_secure_${k} ../icc2/outputs2icc2/bit_top.upf
}
load_upf ../icc2/outputs2icc2/bit_coin.upf

File : wrap_bit_top.upf

for {set i 0} {$i < 32} {incr i} { load_upf -scope slice_${i} ../icc2/outputs2icc2/bit_slice.upf } load_upf ../icc2/outputs2icc2/bit_top.upf

第 30 页 — 比特币统计信息

Slide 30

- Number of instances = 182,000 - Number of macros = 1,024 - Number of Power Domains = 1,586 - Number of Voltage Areas = 1,586 - Number of supply Nets = 3,174 - Reg2Reg Timing Clean - Area ~475K logic gates - Runtime — 8.5 hours - Memory — 4.5G - 4 scan chains - DFT DRC clean after autofix - 90% Test Coverage after ATPG 自动测试向量生成


第 31 页 — Verdi PAA:用 RTL 翻转数据使能门级低功耗签核

Slide 31

三种功耗分析流程

1. PT-PX 功耗签核流程:门级设计 + 门级 FSDB --> PT-PX 功耗计算 2. Verdi PAA + PT-PX 流程:RTL FSDB --> PAA 标注/传播 RTL 活动到门级设计 --> PT-PX 功耗计算 3. PT-PX RTL 活动流程:RTL FSDB --> PT-PX 功耗计算

速度与精度的权衡:Verdi PAA + PT-PX 流程提供最佳的速度与精度平衡。


第 32 页 — Verdi PAA 结果:PT-PX 相关性

Slide 32
FSDB UsedPTPX Total Power (W)%DIFF
GLS, NO UPF1.77084.0%
PAA GLS, NO UPF1.8413
FSDB UsedPTPX Total Power (W)%DIFF
GLS, UPF0.88031.6%
PAA GLS, UPF0.8941

默认测试:50 个事务,基本功能测试,极短时间窗口。


第 33 页 — Verdi PAA 结果:运行时间

Slide 33
FSDB UsedSimulation Time (ns)Runtime (CPU Secs)Runtime (CPU Hrs)%DIFF
RTL, UPF0 to 600001015.2700.28-
GLS, UPF0 to 6000012153.8703.37~7X
PAA GLS, UPF30000 to 325001740.0300.48

对于峰值功耗:选择一个"窗口"与 GLS 总运行时间比较。

未来工作: - 3 个并行仿真获得 21 倍运行时间提升 - 100 个并行仿真获得 60 倍以上运行时间提升(平均功耗)


第 34 页 — Formality:低功耗等价性检查

Slide 34

Formality 特性: - 性能:与 DC 的最大 QoR,完全可验证 - 生产力:理解 DC 执行的复杂优化,为 DC 家族编译的设计提供自动化设置 - 可预测性:可靠的验证结果

流程图:RTL + UPF + SVF --> Design Compiler/Power Compiler/IC Compiler --> PG Netlist + UPF' + SVF' --> Formality 等价性检查


第 35 页 — Formality @RTL2Gate 结果

Slide 35

- Clean EC 运行 @RTL2Gate 以及 @RTL2PG - 保留模型(Retention models):使用 Synopsys 推荐的仿真模型

DesignFailuresErrorsTotal Time (S)CPU Time (S)Peak Memory (MB)
bit_coin004757 (1.32hrs)44305373

第 36 页 — PrimeTime 签核流程

Slide 36

低功耗启用的静态时序、功耗分析和 ECO 签核

输入: - IC Compiler II 输出(Netlist + DEF + LEF + UPF'') - StarRC - Library data (.db/.lib) - Physical library (LEF) - Coupled SBPF / SPEF - SDC Constraints

输出:DRC、Timing Violations、Power


第 37 页 — PrimeTime/PT-PX/ECO 结果

Slide 37

- 通过综合和布局布线实现干净的时序 - 使用 Verdi PAA 生成的 FSDB 进行功耗估算 - ECO 运行以修复时序 -> 脚本传递给 ICC2

ToolInput DataActivity DataUPFInternal Power (W)Switching Power (W)Leakage Power (W)Total Power (W)
PT-PXICC2 NetlistGLS_UPF.fsdbYes0.53870.08800.25360.8803
PT-PXICC2 NetlistPAA_GLS_UPF.fsdbYes0.53930.09020.26460.8941

第 38 页 — 未来展望与总结

Slide 38

第 39 页 — 未来展望

Slide 39

Current UPF --> Future UPF: - nwell - Zero-Pin Retention(SIPO 和 PISO 块) - UPF 3.0 Style for PST - Golden UPF - Fully Abstract PG

Future Design: - Power Control Module - Pads/Bumps - DVFS/AVFS - AMS - Verification Plan


第 40 页 — 总结

Slide 40

- 低功耗设计 Low Power Design 很重要并且普遍存在 - 相比通用流程,功耗提升 2 倍 - 技术正朝着更激进的改进方向前进 - 比特币案例研究展示了完整的 Synopsys 低功耗流程与方法学现已可供您尝试 - 比特币测试用例包和案例研究用户指南可在 SolvNet 获取! - 搜索 "bitcoin"


第 41 页 — 致谢

Slide 41

Synopsys Bitcoin Team: Godwin Maben, Karan Brar, Tony Dimalanta, Darrell Preece, Gunjan Utreja, Vish Singh, Mark Leonard, Ken Yang, Vikas Pissay, Avinash Tiwari, Babu Dinakaran, Ahmet Gokcek, Amrita Sahoo, John Sotiropoulos, Sai Seshabhattar, Parul Patel

Special Thanks: Luke Hassell, Amy Condit, Karen Summers, Ashley Bare, Mike Montana, Tushar Parikh, Erik Olson, Ken Nelsen

Synopsys NGSK, BU R/D Teams, BU CAE Teams, BU Marketing Teams


图片索引

共 366 张图片,存放于 _images/ 目录(SNUG_TPC_LowPower_Dimalanta_Microsoft_PowerPoint_11_snug_sv_2017_tutorial_Bitcoin_LP_Implementation_v13_2017Mar13pptx_paper_images/)。

第 1-6 页:封面、议程、引言、电源对比图、全球影响、案例研究动机 第 7-12 页:UPF 概览、比特币介绍、微架构、电源模块图 第 13-17 页:UPF 构造、PST 复杂度分析、最终 PST 第 18-23 页:低功耗流程、SpyGlass 概览和结果 第 24-26 页:VC LP 流程与结果 第 27-30 页:Design Compiler 家族、Bottom Up Compile、Wrapper UPF、统计信息 第 31-35 页:Verdi PAA 流程与结果、Formality 第 36-41 页:PrimeTime 签核、未来展望、总结、致谢

完整图片列表参见 _images/ 目录中按页码分组的 p1-p41 图片文件。